﻿
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Runtime.Serialization;
namespace GSQ.BusinessEntities
{
    public class RECIBOS_PAGOS : EntityBase
    {
        #region Primitive Properties
        [Key]
        [Editable(false)]
        [DisplayName("Id")]
        [DefaultValue(-1)]
        [DisplayFormat(ConvertEmptyStringToNull = true, NullDisplayText = "0")]
        [Required(ErrorMessage = " No puede ser nulo.")]
        [DataMember]
        public decimal ID
        {
            get { return _iD; }
            set
            {
                if (_iD != value)
                {
                    _iD = value;
                    OnPropertyChanged("ID");
                }
            }
        }
        private decimal _iD;

        [DataMember]
        public decimal NRO_DOCUMENTO
        {
            get { return _nNRO_DOCUMENTO; }
            set
            {
                if (_nNRO_DOCUMENTO != value)
                {
                    _nNRO_DOCUMENTO = value;
                    OnPropertyChanged("NRO_DOCUMENTO");
                }
            }
        }
        private decimal _nNRO_DOCUMENTO;

        [DisplayName("Id Cliente")]
        [DefaultValue(-1)]
        [DisplayFormat(ConvertEmptyStringToNull = true, NullDisplayText = "0")]
        [Range(1, double.MaxValue, ErrorMessage = "No puede ser nulo ni cero.")]
        [DataMember]
        public decimal ID_CLIENTE
        {
            get { return _iD_CLIENTE; }
            set
            {
                if (_iD_CLIENTE != value)
                {
                    _iD_CLIENTE = value;
                    OnPropertyChanged("ID_CLIENTE");
                }
            }
        }
        private decimal _iD_CLIENTE;

        [DisplayName("Id Vendedor")]
        [DefaultValue(-1)]
        [DisplayFormat(ConvertEmptyStringToNull = true, NullDisplayText = "0")]
        [Range(1, double.MaxValue, ErrorMessage = "No puede ser nulo ni cero.")]
        [DataMember]
        public decimal ID_VENDEDOR
        {
            get { return _iD_VENDEDOR; }
            set
            {
                if (_iD_VENDEDOR != value)
                {
                    _iD_VENDEDOR = value;
                    OnPropertyChanged("ID_VENDEDOR");
                }
            }
        }
        private decimal _iD_VENDEDOR;

        public bool ES_CONSIGNACION
        {
            get { return _eS_CONSIGNACION; }
            set
            {
                if (this._eS_CONSIGNACION != value)
                {
                    this._eS_CONSIGNACION = value;
                    OnPropertyChanged("ES_CONSIGNACION");
                }
            }
        }
        private bool _eS_CONSIGNACION;

        [DisplayName("Id Usuario")]
        [DefaultValue(-1)]
        [DisplayFormat(ConvertEmptyStringToNull = true, NullDisplayText = "0")]
        [Range(1, double.MaxValue, ErrorMessage = "No puede ser nulo ni cero.")]
        [DataMember]
        public decimal ID_USUARIO
        {
            get { return _iD_USUARIO; }
            set
            {
                if (_iD_USUARIO != value)
                {
                    _iD_USUARIO = value;
                    OnPropertyChanged("ID_USUARIO");
                }
            }
        }
        private decimal _iD_USUARIO;

        [DataMember]
        public System.DateTime FECHA
        {
            get { return _fECHA; }
            set
            {
                if (_fECHA != value)
                {
                    _fECHA = value;
                    OnPropertyChanged("FECHA");
                }
            }
        }
        private System.DateTime _fECHA = DateTime.Now;

        [DataMember]
        public string REFERENCIA
        {
            get { return this._rEFERENCIA; }
            set
            {
                if (this._rEFERENCIA != value)
                {
                    this._rEFERENCIA = value;
                    OnPropertyChanged("REFERENCIA");
                }
            }
        }
        private string _rEFERENCIA;

        [DataMember]
        [StringLength(30, ErrorMessage = "No puede ser mayor a 30 caracteres.")]
        public bool ACTIVO
        {
            get { return _aCTIVO; }
            set
            {
                if (_aCTIVO != value)
                {
                    _aCTIVO = value;
                    OnPropertyChanged("ACTIVO");
                }
            }
        }
        private bool _aCTIVO;

        [DisplayName("Observaciones")]
        [DefaultValue(-1)]
        [DisplayFormat(ConvertEmptyStringToNull = true, NullDisplayText = "0")]
        [StringLength(150, ErrorMessage = "No puede ser mayor a 150 caracteres.")]
        [DataMember]
        public string OBSERVACIONES
        {
            get { return _oBSERVACIONES; }
            set
            {
                if (_oBSERVACIONES != value)
                {
                    _oBSERVACIONES = value;
                    OnPropertyChanged("OBSERVACIONES");
                }
            }
        }
        private string _oBSERVACIONES;

        public decimal M_DESCUENTO
        {
            get { return this._m_DESCUENTO; }
            set { this._m_DESCUENTO = value; }
        }
        private decimal _m_DESCUENTO;

        public decimal M_TOTAL
        {
            get { return this._m_TOTAL; }
            set { this._m_TOTAL = value; }
        }
        private decimal _m_TOTAL;

        #endregion

        #region Navigation Properties
        CLIENTES _cLIENTES;
        public CLIENTES CLIENTES
        {
            get { return this._cLIENTES; }
            set { this._cLIENTES = value; }
        }

        USUARIOS _uSUARIOS;
        public USUARIOS USUARIOS
        {
            get { return _uSUARIOS; }
            set { _uSUARIOS = value; }
        }

        List<RECIBOS_PAGOS_DETALLES> _rECIBOS_PAGOS_DETALLES = new List<RECIBOS_PAGOS_DETALLES>();
        public List<RECIBOS_PAGOS_DETALLES> RECIBOS_PAGOS_DETALLES
        {
            get { return this._rECIBOS_PAGOS_DETALLES; }
            set { this._rECIBOS_PAGOS_DETALLES = value; }
        }

        VENDEDORES _vENDEDORES;
        public VENDEDORES VENDEDORES
        {
            get { return this._vENDEDORES; }
            set { this._vENDEDORES = value; }
        }

        #endregion
    }
}
